

# leetcode 680
# 给定一个非空字符串 s，请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。

# python3 通俗易懂，首先去掉干扰字符，然后尝试去掉剩余字符串左边或右边一个字符，若有一种情况满足回文，则为True

# 从左右两端开始验证是否是回文串，验证的过程中，若两个字符不等，再左右各加一或减一，验证一遍

def validPalindrome(self, s):
    l = 0
    r = len(s) - 1
    while l < r and s[l] == s[r]:
        l += 1
        r -= 1
    a = s[:l] + s[l + 1:]                       # 如果出现了不相等，就会有两种情况，去掉这个字符串，进行验证。
    b = s[:r] + s[r + 1:]
    return a == a[::-1] or b == b[::-1]